home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 24 / Amiga Format AFCD24 (Feb 1998, Issue 108).iso / -in_the_mag- / emulation / amiga / uae-0.7.0b2 / src / include / picasso96.h < prev    next >
C/C++ Source or Header  |  1998-01-20  |  16KB  |  451 lines

  1. /*
  2.  * UAE - The U*nix Amiga Emulator
  3.  *
  4.  * Picasso96 Support Module Header
  5.  *
  6.  * Copyright 1997 Brian King <Brian_King@Mitel.com, Brian_King@Cloanto.com>
  7.  */
  8.  
  9. #if defined PICASSO96_SUPPORTED && CPU_LEVEL > 1
  10.  
  11. #define PICASSO96
  12.  
  13. #define JAM1 0
  14. #define JAM2 1
  15. #define COMP 2
  16. #define INVERS 4
  17.  
  18. struct ScreenResolution
  19. {
  20.     uae_u32 width;  /* in pixels */
  21.     uae_u32 height; /* in pixels */
  22. };
  23.  
  24. #define MAX_PICASSO_MODES 64
  25.  
  26. struct PicassoResolution
  27. {
  28.     struct Resolutions *next;
  29.     struct ScreenResolution res;
  30.     int depth;
  31.     int refresh;
  32.     char name[25];
  33. };
  34. extern struct PicassoResolution DisplayModes[MAX_PICASSO_MODES];
  35.  
  36.  
  37. /* Types for RGBFormat used */
  38. typedef enum {
  39.     RGBFB_NONE,        /* no valid RGB format (should not happen) */
  40.     RGBFB_CLUT,        /* palette mode, set colors when opening screen using
  41.                tags or use SetRGB32/LoadRGB32(...) */
  42.     RGBFB_R8G8B8,    /* TrueColor RGB (8 bit each) */
  43.     RGBFB_B8G8R8,    /* TrueColor BGR (8 bit each) */
  44.     RGBFB_R5G6B5PC,    /* HiColor16 (5 bit R, 6 bit G, 5 bit B),
  45.                format: gggbbbbbrrrrrggg */
  46.     RGBFB_R5G5B5PC,    /* HiColor15 (5 bit each), format: gggbbbbb0rrrrrgg */
  47.     RGBFB_A8R8G8B8,    /* 4 Byte TrueColor ARGB (A unused alpha channel) */
  48.     RGBFB_A8B8G8R8,    /* 4 Byte TrueColor ABGR (A unused alpha channel) */
  49.     RGBFB_R8G8B8A8,    /* 4 Byte TrueColor RGBA (A unused alpha channel) */
  50.     RGBFB_B8G8R8A8,    /* 4 Byte TrueColor BGRA (A unused alpha channel) */
  51.     RGBFB_R5G6B5,    /* HiColor16 (5 bit R, 6 bit G, 5 bit B),
  52.                format: rrrrrggggggbbbbb */
  53.     RGBFB_R5G5B5,    /* HiColor15 (5 bit each), format: 0rrrrrgggggbbbbb */
  54.     RGBFB_B5G6R5PC,    /* HiColor16 (5 bit R, 6 bit G, 5 bit B),
  55.                format: gggrrrrrbbbbbggg */
  56.     RGBFB_B5G5R5PC,    /* HiColor15 (5 bit each), format: gggrrrrr0bbbbbbgg */
  57.  
  58.     /* By now, the following formats are for use with a hardware window only
  59.        (bitmap operations may be implemented incompletely) */
  60.  
  61.     RGBFB_Y4U2V2,    /* 2 Byte TrueColor YUV (CCIR recommendation CCIR601).
  62.                Each two-pixel unit is stored as one longword
  63.                containing luminance (Y) for each of the two pixels,
  64.                and chrominance (U,V) for alternate pixels.
  65.                The missing chrominance values are generated by
  66.                interpolation. (Y1-U0-Y0-V0) */
  67.     RGBFB_Y4U1V1,    /* 1 Byte TrueColor ACCUPAK. Four adjacent pixels form
  68.                a packet of 5 bits Y (luminance) each pixel and 6 bits
  69.                U and V (chrominance) shared by the four pixels */
  70.  
  71.     RGBFB_MaxFormats
  72. } RGBFTYPE;
  73.  
  74. #define RGBFF_NONE    (1<<RGBFB_NONE)
  75. #define RGBFF_CLUT    (1<<RGBFB_CLUT)
  76. #define RGBFF_R8G8B8    (1<<RGBFB_R8G8B8)
  77. #define RGBFF_B8G8R8    (1<<RGBFB_B8G8R8)
  78. #define RGBFF_R5G6B5PC    (1<<RGBFB_R5G6B5PC)
  79. #define RGBFF_R5G5B5PC    (1<<RGBFB_R5G5B5PC)
  80. #define RGBFF_A8R8G8B8    (1<<RGBFB_A8R8G8B8)
  81. #define RGBFF_A8B8G8R8    (1<<RGBFB_A8B8G8R8)
  82. #define RGBFF_R8G8B8A8    (1<<RGBFB_R8G8B8A8)
  83. #define RGBFF_B8G8R8A8    (1<<RGBFB_B8G8R8A8)
  84. #define RGBFF_R5G6B5    (1<<RGBFB_R5G6B5)
  85. #define RGBFF_R5G5B5    (1<<RGBFB_R5G5B5)
  86. #define RGBFF_B5G6R5PC    (1<<RGBFB_B5G6R5PC)
  87. #define RGBFF_B5G5R5PC    (1<<RGBFB_B5G5R5PC)
  88. #define RGBFF_Y4U2V2    (1<<RGBFB_Y4U2V2)
  89. #define RGBFF_Y4U1V1    (1<<RGBFB_Y4U1V1)
  90.  
  91. /************************************************************************/
  92.  
  93. #define    RGBFF_PLANAR    RGBFF_NONE
  94. #define    RGBFF_CHUNKY    RGBFF_CLUT
  95.  
  96. #define    RGBFB_PLANAR    RGBFB_NONE
  97. #define    RGBFB_CHUNKY    RGBFB_CLUT
  98.  
  99. /************************************************************************/
  100.  
  101. enum{
  102.     PLANAR,
  103.     CHUNKY,
  104.     HICOLOR,
  105.     TRUECOLOR,
  106.     TRUEALPHA,
  107.     MAXMODES
  108. };
  109.  
  110. /************************************************************************/
  111. struct MyCLUTEntry {
  112.     uae_u8 Red;
  113.     uae_u8 Green;
  114.     uae_u8 Blue;
  115.     uae_u8 Pad;
  116. };
  117.  
  118. struct ColorIndexMapping {
  119.     uae_u32 ColorMask;
  120.     uae_u32 Colors[256];
  121. };
  122.  
  123. struct CLUTEntry {
  124.     uae_u8 Red;
  125.     uae_u8 Green;
  126.     uae_u8 Blue;
  127. };
  128.  
  129. #define PSSO_BitMap_BytesPerRow 0
  130. #define PSSO_BitMap_Rows 2
  131. #define PSSO_BitMap_Flags 4
  132. #define PSSO_BitMap_Depth 5
  133. #define PSSO_BitMap_pad 6
  134. #define PSSO_BitMap_Planes 8
  135. #define PSSO_BitMap_sizeof 40
  136.  
  137. struct BitMap
  138. {
  139.     uae_u16 BytesPerRow;
  140.     uae_u16 Rows;
  141.     uae_u8 Flags;
  142.     uae_u8 Depth;
  143.     uae_u16 pad;
  144.     uae_u8 *Planes[8];
  145. };
  146.  
  147. /************************************************************************/
  148.  
  149. #define    SETTINGSNAMEMAXCHARS        30
  150. #define    BOARDNAMEMAXCHARS            30
  151.  
  152. struct Settings{
  153.     uae_u32                    BoardType;
  154.     /* a value discribing assignment to nth board local to boardtype
  155.      * to be used for reassignment when boards are added or removed.  */
  156.     uae_u16                    LocalOrdering;
  157.     uae_s16                    LastSelected;
  158.     char                    NameField[SETTINGSNAMEMAXCHARS];
  159.     /* neu! */
  160.     char                    *BoardName;
  161. };
  162.  
  163. #define MAXRESOLUTIONNAMELENGTH 22
  164.  
  165. /********************************
  166.  * only used within rtg.library *
  167.  ********************************/
  168.  
  169. #define PSSO_LibResolution_P96ID 14
  170. #define PSSO_LibResolution_Name 20
  171. #define PSSO_LibResolution_DisplayID 42 /* Name + MAXRESOLUTIONNAMELENGTH */
  172. #define PSSO_LibResolution_Width 46
  173. #define PSSO_LibResolution_Height 48
  174. #define PSSO_LibResolution_Flags 50
  175. #define PSSO_LibResolution_Modes 52
  176. #define PSSO_LibResolution_BoardInfo (52 + MAXMODES*4)
  177. #define PSSO_LibResolution_sizeof (60 + MAXMODES*4)
  178.  
  179. struct LibResolution{
  180.     char P96ID[6];
  181.     char Name[MAXRESOLUTIONNAMELENGTH];
  182.     uae_u32 DisplayID;
  183.     uae_u16 Width;
  184.     uae_u16 Height;
  185.     uae_u16 Flags;
  186.     uaecptr Modes[MAXMODES];
  187.     uaecptr BoardInfo;
  188. };
  189.  
  190. #define    P96B_FAMILY    0            /* obsolete (Resolution is an entire family) */
  191. #define    P96B_PUBLIC    1            /* Resolution should be added to the public */
  192. #define    P96B_MONITOOL    2
  193.  
  194. #define    P96F_FAMILY    (1<<P96B_FAMILY)    /* obsolete */
  195. #define    P96F_PUBLIC    (1<<P96B_PUBLIC)
  196. #define    P96F_MONITOOL    (1<<P96B_MONITOOL)
  197.  
  198. #define PSSO_ModeInfo_OpenCount 14
  199. #define PSSO_ModeInfo_Active 16
  200. #define PSSO_ModeInfo_Width 18
  201. #define PSSO_ModeInfo_Height 20
  202. #define PSSO_ModeInfo_Depth 22
  203. #define PSSO_ModeInfo_Flags 23
  204. #define PSSO_ModeInfo_HorTotal 24
  205. #define PSSO_ModeInfo_HorBlankSize 26
  206. #define PSSO_ModeInfo_HorSyncStart 28
  207. #define PSSO_ModeInfo_HorSyncSize 30
  208. #define PSSO_ModeInfo_HorSyncSkew 32
  209. #define PSSO_ModeInfo_HorEnableSkew 33
  210. #define PSSO_ModeInfo_VerTotal 34
  211. #define PSSO_ModeInfo_VerBlankSize 36
  212. #define PSSO_ModeInfo_VerSyncStart 38
  213. #define PSSO_ModeInfo_VerSyncSize 40
  214. #define PSSO_ModeInfo_first_union 42
  215. #define PSSO_ModeInfo_second_union 43
  216. #define PSSO_ModeInfo_PixelClock 44
  217. #define PSSO_ModeInfo_sizeof 48
  218.  
  219. #define PSSO_RenderInfo_Memory 0
  220. #define PSSO_RenderInfo_BytesPerRow 4
  221. #define PSSO_RenderInfo_pad 6
  222. #define PSSO_RenderInfo_RGBFormat 8
  223. #define PSSO_RenderInfo_sizeof /* ??? */
  224.  
  225. struct RenderInfo {
  226.     uae_u8 *Memory;
  227.     uae_s16 BytesPerRow;
  228.     uae_s16 pad;
  229.     RGBFTYPE RGBFormat;
  230. };
  231.  
  232. #define PSSO_Pattern_Memory 0
  233. #define PSSO_Pattern_XOffset 4
  234. #define PSSO_Pattern_YOffset 6
  235. #define PSSO_Pattern_FgPen 8
  236. #define PSSO_Pattern_BgPen 12
  237. #define PSSO_Pattern_Size 16
  238. #define PSSO_Pattern_DrawMode 17
  239. #define PSSO_Pattern_sizeof 18
  240. struct Pattern {
  241.     char *Memory;
  242.     uae_u16 XOffset, YOffset;
  243.     uae_u32 FgPen, BgPen;
  244.     uae_u8 Size;                    /* Width: 16, Height: (1<<pat_Size) */
  245.     uae_u8 DrawMode;
  246. };
  247.  
  248. #define PSSO_Template_Memory 0
  249. #define PSSO_Template_BytesPerRow 4
  250. #define PSSO_Template_XOffset 6
  251. #define PSSO_Template_DrawMode 7
  252. #define PSSO_Template_FgPen 8
  253. #define PSSO_Template_BgPen 12
  254. #define PSSO_Template_sizeof 16
  255.  
  256. struct Template {
  257.     char *Memory;
  258.     uae_s16 BytesPerRow;
  259.     uae_u8 XOffset;
  260.     uae_u8 DrawMode;
  261.     uae_u32 FgPen;
  262.     uae_u32 BgPen;
  263. };
  264.  
  265. #define PSSO_BoardInfo_MemoryBase 4
  266. #define PSSO_BoardInfo_MemorySize 12
  267. #define PSSO_BoardInfo_BoardName 16
  268. #define PSSO_BoardInfo_VBIName 20
  269. #define PSSO_BoardInfo_CardBase 52
  270. #define PSSO_BoardInfo_ChipBase 56
  271. #define PSSO_BoardInfo_ExecBase 60
  272. #define PSSO_BoardInfo_UtilBase 64
  273. #define PSSO_BoardInfo_HardInterrupt 68
  274. #define PSSO_BoardInfo_SoftInterrupt 90
  275. #define PSSO_BoardInfo_BoardLock 112
  276. #define PSSO_BoardInfo_ResolutionsList 158
  277. #define PSSO_BoardInfo_BoardType 170
  278. #define PSSO_BoardInfo_PaletteChipType 174
  279. #define PSSO_BoardInfo_GraphicsControllerType 178
  280. #define PSSO_BoardInfo_MoniSwitch 182
  281. #define PSSO_BoardInfo_BitsPerCannon 184
  282. #define PSSO_BoardInfo_Flags 186
  283. #define PSSO_BoardInfo_SoftSpriteFlags 190
  284. #define PSSO_BoardInfo_ChipFlags 192
  285. #define PSSO_BoardInfo_CardFlags 194
  286. #define PSSO_BoardInfo_BoardNum 198
  287. #define PSSO_BoardInfo_RGBFormats 200
  288. #define PSSO_BoardInfo_MaxHorValue 202
  289. #define PSSO_BoardInfo_MaxVerValue (202 + 2*MAXMODES)
  290. #define PSSO_BoardInfo_MaxHorResolution (202 + 4*MAXMODES)
  291. #define PSSO_BoardInfo_MaxVerResolution (202 + 6*MAXMODES)
  292. #define PSSO_BoardInfo_MaxMemorySize (202 + 8*MAXMODES)
  293. #define PSSO_BoardInfo_MaxChunkSize (202 + 8*MAXMODES + 4)
  294. #define PSSO_BoardInfo_PixelClockArray (202 + 8*MAXMODES + 8)
  295. #define PSSO_BoardInfo_PixelClockCount (202 + 8*MAXMODES + 12)
  296. #define PSSO_BoardInfo_AllocCardMem (202 + 12*MAXMODES + 12)
  297. #define PSSO_BoardInfo_SpecialFeatures (202 + 12*MAXMODES + 12 + 68*4)
  298. #define PSSO_BoardInfo_ModeInfo (202 + 12*MAXMODES + 12 + 68*4 + 12)
  299. #define PSSO_BoardInfo_CLUT (202 + 12*MAXMODES + 12 + 68*4 + 32)
  300.  
  301. struct BoardInfo{
  302.     uae_u8 *RegisterBase, *MemoryBase, *MemoryIOBase;
  303.     uae_u32 MemorySize;
  304.     char *BoardName, VBIName[32];
  305.  
  306.     uae_u16 MoniSwitch;
  307.     uae_u16 BitsPerCannon;
  308.     uae_u32 Flags;
  309.     uae_u16 SoftSpriteFlags;
  310.     uae_u16 ChipFlags;    /* private, chip specific, not touched by RTG */
  311.     uae_u32 CardFlags;    /* private, card specific, not touched by RTG */
  312.  
  313.     uae_u16 BoardNum;
  314.     uae_s16 RGBFormats;
  315.  
  316.     uae_u16 MaxHorValue[MAXMODES];
  317.     uae_u16 MaxVerValue[MAXMODES];
  318.     uae_u16 MaxHorResolution[MAXMODES];
  319.     uae_u16 MaxVerResolution[MAXMODES];
  320.     uae_u32 MaxMemorySize, MaxChunkSize;
  321. };
  322.  
  323. /* BoardInfo flags */
  324. /*  0-15: hardware flags */
  325. /* 16-31: user flags */
  326. #define BIB_HARDWARESPRITE    0    /* board has hardware sprite */
  327. #define BIB_NOMEMORYMODEMIX    1    /* board does not support modifying planar bitmaps while displaying chunky and vice versa */
  328. #define BIB_NEEDSALIGNMENT    2    /* bitmaps have to be aligned (not yet supported!) */
  329. #define BIB_DBLSCANDBLSPRITEY    8    /* hardware sprite y position is doubled on doublescan display modes */
  330. #define BIB_ILACEHALFSPRITEY    9    /* hardware sprite y position is halved on interlace display modes */
  331. #define BIB_ILACEDBLROWOFFSET    10    /* doubled row offset in interlaced display modes needs additional horizontal bit */
  332.  
  333. #define BIB_FLICKERFIXER    12    /* board can flicker fix Amiga RGB signal */
  334. #define BIB_VIDEOCAPTURE    13    /* board can capture video data to a memory area */
  335. #define BIB_VIDEOWINDOW        14    /* board can display a second mem area as a pip */
  336. #define BIB_BLITTER        15    /* board has blitter */
  337.  
  338. #define BIB_HIRESSPRITE        16    /* mouse sprite has double resolution */
  339. #define BIB_BIGSPRITE        17    /* user wants big mouse sprite */
  340. #define BIB_BORDEROVERRIDE    18    /* user wants to override system overscan border prefs */
  341. #define BIB_BORDERBLANK        19    /* user wants border blanking */
  342. #define BIB_INDISPLAYCHAIN    20    /* board switches Amiga signal */
  343. #define BIB_QUIET        21    /* not yet implemented */
  344. #define BIB_NOMASKBLITS        22    /* perform blits without taking care of mask */
  345. #define BIB_NOC2PBLITS        23    /* use CPU for planar to chunky conversions */
  346. #define BIB_NOBLITTER        24    /* disable all blitter functions */
  347.  
  348. #define BIB_IGNOREMASK    BIB_NOMASKBLITS
  349.  
  350. #define BIF_HARDWARESPRITE    (1<<BIB_HARDWARESPRITE)
  351. #define BIF_NOMEMORYMODEMIX    (1<<BIB_NOMEMORYMODEMIX)
  352. #define BIF_NEEDSALIGNMENT    (1<<BIB_NEEDSALIGNMENT)
  353. #define BIF_DBLSCANDBLSPRITEY    (1<<BIB_DBLSCANDBLSPRITEY)
  354. #define BIF_ILACEHALFSPRITEY    (1<<BIB_ILACEHALFSPRITEY)
  355. #define BIF_ILACEDBLROWOFFSET    (1<<BIB_ILACEDBLROWOFFSET)
  356. #define BIF_FLICKERFIXER    (1<<BIB_FLICKERFIXER)
  357. #define BIF_VIDEOCAPTURE    (1<<BIB_VIDEOCAPTURE)
  358. #define BIF_VIDEOWINDOW        (1<<BIB_VIDEOWINDOW)
  359. #define BIF_BLITTER        (1<<BIB_BLITTER)
  360. #define BIF_HIRESSPRITE        (1<<BIB_HIRESSPRITE)
  361. #define BIF_BIGSPRITE        (1<<BIB_BIGSPRITE)
  362. #define BIF_BORDEROVERRIDE    (1<<BIB_BORDEROVERRIDE)
  363. #define BIF_BORDERBLANK        (1<<BIB_BORDERBLANK)
  364. #define BIF_INDISPLAYCHAIN    (1<<BIB_INDISPLAYCHAIN)
  365. #define BIF_QUIET        (1<<BIB_QUIET)
  366. #define BIF_NOMASKBLITS        (1<<BIB_NOMASKBLITS)
  367. #define BIF_NOC2PBLITS        (1<<BIB_NOC2PBLITS)
  368. #define BIF_NOBLITTER        (1<<BIB_NOBLITTER)
  369.  
  370. #define BIF_IGNOREMASK     BIF_NOMASKBLITS
  371.  
  372. /************************************************************************/
  373. struct picasso96_state_struct
  374. {
  375.     uae_u32             RGBFormat;   /* true-colour, CLUT, hi-colour, etc. */
  376.     struct MyCLUTEntry  CLUT[256];   /* Duh! */
  377.     uaecptr             Address;     /* Active screen address (Amiga-side) */
  378.     uaecptr             Extent;      /* End address of screen (Amiga-side) */
  379.     uae_u16             Width;       /* Active display width  (From SetGC) */
  380.     uae_u16             VirtualWidth;/* Total screen width (From SetPanning) */
  381.     uae_u16             BytesPerRow; /* Total screen width in bytes (From SetGC) */
  382.     uae_u16             Height;      /* Active display height (From SetGC) */
  383.     uae_u16             VirtualHeight; /* Total screen height */
  384.     uae_u8              GC_Depth;    /* From SetGC() */
  385.     uae_u8              GC_Flags;    /* From SetGC() */
  386.     long                XOffset;     /* From SetPanning() */
  387.     long                YOffset;     /* From SetPanning() */
  388.     uae_u8              SwitchState; /* From SetSwitch() - 0 is Amiga, 1 is Picasso */
  389.     uae_u8              BytesPerPixel;
  390.     uae_u8              CardFound;
  391. };
  392.  
  393. extern void InitPicasso96 (void);
  394.  
  395. extern uae_u32 picasso_SetDisplay (void);
  396. extern uae_u32 picasso_WaitVerticalSync (void);
  397. extern uae_u32 picasso_CalculateBytesPerRow (void);
  398. extern uae_u32 picasso_FillRect (void);
  399. extern uae_u32 picasso_BlitRect (void);
  400. extern uae_u32 picasso_InvertRect (void);
  401. extern uae_u32 picasso_SetPanning (void);
  402. extern uae_u32 picasso_SetGC (void);
  403. extern uae_u32 picasso_SetDAC (void);
  404. extern uae_u32 picasso_SetColorArray (void);
  405. extern uae_u32 picasso_SetSwitch (void);
  406. extern uae_u32 picasso_SetSwitch (void);
  407. extern uae_u32 picasso_FindCard (void);
  408. extern uae_u32 picasso_InitCard (void);
  409. extern uae_u32 picasso_BlitPlanar2Chunky (void);
  410. extern uae_u32 picasso_BlitPlanar2Direct (void);
  411. extern uae_u32 picasso_BlitTemplate (void);
  412. extern uae_u32 picasso_BlitPattern (void);
  413. extern uae_u32 picasso_BlitRectNoMaskComplete (void);
  414.  
  415. extern uae_u32 gfxmem_mask;
  416. extern uae_u8 *gfxmemory;
  417.  
  418. extern int uaegfx_card_found;
  419.  
  420. extern struct picasso96_state_struct picasso96_state;
  421.  
  422. #ifdef _WIN32
  423. extern unsigned int timer_id;
  424. #endif
  425.  
  426. extern int DX_FillRect(uaecptr mem, uae_u16 X, uae_u16 Y, uae_u16 Width, uae_u16 Height, uae_u32 Pen, uae_u8 Bpp);
  427. extern void DX_BlitRect(struct RenderInfo *ri, uae_u16 srcx, uae_u16 srcy, uae_u16 dstx, uae_u16 dsty, uae_u16 w, uae_u16 h);
  428. extern void DX_BlitRectFromBuffer(struct RenderInfo *ri, uae_u8* buffer, uae_u16 dstx, uae_u16 dsty, uae_u16 w, uae_u16 h);
  429. extern void DX_InvertRect(struct RenderInfo *ri, uae_u16 X, uae_u16 Y, uae_u16 Width, uae_u16 Height);
  430. extern void DX_SetPalette(int start, int count);
  431. extern int DX_FillResolutions (uae_u16 *);
  432. extern int DX_BitsPerCannon (void);
  433. extern void DX_Invalidate (int first, int last);
  434. extern void picasso_enablescreen (int on);
  435.  
  436. extern uae_u8 *gfxmemory;
  437.  
  438. struct picasso_vidbuf_description {
  439.     int width, height, depth;
  440.     int rowbytes, pixbytes;
  441.     int extra_mem; /* nonzero if there's a second buffer that must be updated */
  442. };
  443.  
  444. extern struct picasso_vidbuf_description picasso_vidinfo;
  445.  
  446. extern void gfx_set_picasso_modeinfo (int w, int h, int d);
  447. extern void gfx_set_picasso_baseaddr (uaecptr);
  448. extern void gfx_set_picasso_state (int on);
  449.  
  450. #endif
  451.